A data processing system includes a number of devices, typically processing units, data input and output units, a memory unit, and exchange units. Each of the units is allocated a specific task. Each of the processing units, which in modern systems have a tendency to be microprocessors, execute programs that manipulate data. The exchange unit of a system insures transmission of data between the input and output units, processing units, and the memory unit. The memory unit, in addition to storing data, stores programs which control the operation of the input and output units, as well as the processing units and the exchange unit. The processing units, as well as the input-output units, may have internal memories.
In a completely coherent system, the various processing units, memory units, and input-output units communicate or dialogue with each other. Depending on the size or power of the system, either a synchronous or asynchronous communication system is employed. Asynchronous communications are particularly reserved for large, high-power systems for several reasons. The principal reasons are: (1) the relatively great distance between units, which results in lengthy transmission times for signals between units, and (2) to enable independent development of the various units which are spaced in time and/or in different places. The relatively lengthy transmission times make it difficult to check the synchronization of the signals arriving at the different units.
Because of these factors, each of the units has an independent clock, and, therefore, functions asynchronously with respect to the other units. Also, some of the units inherently do not have any clock at all, or may operate at different frequencies and/or phase with respect to each other. Thus, the clock frequency of the different units are not synchronized to each other, with regard to frequency and/or phase. The units which do not include a permanent periodic clock, i.e., asynchronously controlled units, must be controlled by a common system clock. In the case of asynchronously controlled units, the communication between different units, i.e., the exchange of data or control signals between them, can only begin after the synchronized starting of a temporary clock with a signal coupled between the asynchronous units.
In currently known systems, the synchronized starting of the various units in an asynchronous data processing system is performed with flip-flops or Schmidt triggers. However, operational risk generally exists with a poorly defined failure rate in these prior art systems. The poorly defined failure rate occurs particularly for asynchronously controlled units, i.e., units that do not have a permanent clock, because such units are likely to be activated into operation by plural trigger demands that occur completely asynchronously with respect to each other. Operating risks occur when such trigger demands occur approximately simultaneously.
It is, therefore, an object of the present invention to provide a new and improved apparatus for controlling asynchronously operated units of a data processing system.
Another object of the invention is to provide a new and improved asynchronous demand selector that insures activation of an asynchronous control member without operating risk and with a predetermined success ratio, even in response to asynchronous, different trigger demands from other units.